我們常常會在程式裡看到 self 這個字,但是他到底是什麼?初心者一定困惑的一個字。
我覺得在 Ruby 裡不太好說明的一題,但 JS 的 self 更難講啊…
簡單來說
self 永遠指向目前執行的物件 ( 類別指向當前的類別,實體指向當前的實體)。
有時候你會直接呼叫方法,是因為 Ruby 幫你在 Object 類別中做了一個 main 實體然後呼叫方法 ( main.send(:something) )。
可以試試看在 Ruby 中印出 p self 和 p self.class 會出現什麼?(會印出 main 和 Object)。
參考資料
1.https://medium.com/@anneju/ruby-%E8%A3%A1%E7%9A%84-self-%E6%98%AF%E4%BB%80%E9%BA%BC%E6%84%8F%E6%80%9D-7a1f7007e707